package function1;

import sun.jvm.hotspot.utilities.Assert;

import java.util.function.Predicate;

/**
 * @Description TODO
 * @Author li
 * @Date 2022/5/10 10:59 下午
 */
public class PredicateDemo {
    
    /**
     * 功能描述 Predicate为函数式接口，
     *        predicate的中文意思是“断定”，意为判断某个东西是否满足某种条件；
     *        因此它包含test方法，根据输入值来做逻辑判断，其结果为True或者False，可以用作过滤对象
     * @author YiPeng
     * @date 2022/5/10
     * @param * @param:		null 
     * @return void
     */
    public static void predicateDemo(){
        Predicate<String> predicate = o -> o.equals("test");
        Predicate<String> predicate1 = o -> o.startsWith("t");

        System.out.println(predicate.test("test"));
        System.out.println(predicate1.test("test"));
        // 都为true 返回true
        System.out.println(predicate.and(predicate1).test("test"));
        // 有一个为true 返回true
        System.out.println(predicate.or(predicate1).test("test1"));
        // negate 取反 (t) -> !test(t)
        System.out.println(predicate.negate().test("test"));
    }

    public static void main(String[] args) {
        predicateDemo();
    }
}
